/**
 * 编写函数 camelize(str) 将诸如 “my-short-string” 之类的由短划线分隔的单词变成骆驼式的 “myShortString”。
 *即：删除所有短横线，并将短横线后的每一个单词的首字母变为大写。
 * @param str
 */
function camelize(str){

   return  str
            .split('-')
            .map((word,index)=>index===0? word:word[0].toUpperCase()+word.slice(1))
            .join('');
}


/**
 * 过滤范围
 * 写一个函数 filterRange(arr, a, b)，该函数获取一个数组 arr，在其中查找数值大于或等于 a，且小于或
 * 等于 b 的元素，并将结果以数组的形式返回。
 * @param arr
 * @param a
 * @param b
 * @returns {*[]}
 */
function filterRange(arr, a, b){
    // let result = [];
    // for (const arrElement of arr) {
    //     if(arrElement>=a&&arrElement<b){
    //         result.push(arrElement);
    //     }
    // }
    // return result;

    return  arr.filter(element=>element>=a&&element<=b)
}

console.log(filterRange([1,2,3,4,5],2,4))


/**
 * 原位（in place）过滤范围
 * 写一个函数 filterRangeInPlace(arr, a, b)，该函数获取一个数组 arr，并删除其中介于 a 和 b 区间以外的所有值。检查：a ≤ arr[i] ≤ b。
 * @param arr
 * @param a
 * @param b
 */
function filterRangeInPlace(arr, a, b){

    for (let i = 0; i < arr; i++) {
        let e = arr[i];
        if(e<=a||e>=b){
            arr.slice(i,1);
        }
    }
}

console.log(filterRange([1,2,3,4,5],2,3))



//降序排列

function decs(arr){
   return  arr.sort((a,b)=>a-b);
}

// console.log(decs([5,4,3,5,1]))


//复制和排序数组
function copySorted(arr) {
   return  arr.slice().sort()
}

let arr = ['A','E','C','Z'];
console.log(copySorted(arr))
console.log(arr)


